// \u4e00-\u9fa5] 中文验证规则

// house_pkg/pages/form/index.js
Page({
  data: {
    name: '', // 业主姓名
    gender: 0, // 业主性别
    mobile: '', // 业主电话
    idcardFrontUrl: '/static/images/avatar_1.jpg', // 正面照
    idcardBackUrl: '/static/images/avatar_2.jpg', // 背面照
  },
  goList() {
    wx.reLaunch({
      url: '/house_pkg/pages/list/index',
    })
  },
  removePicture(ev) {
    // 移除图片的类型（身份证正面或反面）
    const type = ev.mark?.type
    this.setData({ [type]: '' })
  },
  onLoad({ point, building, room }) {
    this.setData({ point, building, room })
  },
  // 校验 name
  verifyName() {
    // 验证业主姓名（必须为汉字）
    const reg = /^[\u4e00-\u9fa5]{2,5}$/
    // 验证
    const valid = reg.test(this.data.name.trim())
    // 判断
    if (!valid) wx.utils.toast('姓名不合法')
    return valid
  },
  // 校验电话
  verifyMobile() {
    // 设置手机号的正则
    const reg = /^1[3-9][0-9]{9}$/
    // 验证
    const valid = reg.test(this.data.mobile.trim())
    console.log(valid)
    // 判断
    if (!valid) wx.utils.toast('手机号不合法')
    return valid
  },
  // 校验照片是否存在
  verifyIdCardUrl() {
    // 校验
    const fortValid = !!this.data.idcardFrontUrl
    const backValid = !!this.data.idcardBackUrl
    // 判断
    if (!fortValid) wx.utils.toast('身份证正面照为空')
    if (!backValid) wx.utils.toast('身份证背面照为空')
    // 返回结果
    return fortValid && backValid
  },
  // 提交表单数据
  submitForm() {
    if (!this.verifyName()) return
    if (!this.verifyMobile()) return
    if (!this.verifyIdCardUrl()) return
  },
  // 上传图片
  async uploadImage(ev) {
    // 0. 接收参数：要上传的照片（正面照(idcardFrontUrl) & 背面照(idcardBackUrl)）
    const type = ev.mark.type
    // 1. 选择图片：chooseMedia
    const res = await wx.chooseMedia({
      count: 1,
      mediaType: ['image'],
      sourceType: ['album', 'camera'],
    })
    // 得到临时图片
    const filePath = res.tempFiles[0].tempFilePath
    // 2. 上传图片：uploadFile
    wx.uploadFile({
      url: 'https://live-api.itheima.net/upload',
      filePath: filePath,
      name: 'file',
      header: {
        Authorization: getApp().token,
      },
      success: (res) => {
        const data = JSON.parse(res.data)
        // 保存图片地址
        this.setData({
          [type]: data.data.url,
        })
      },
    })
  },
  // 提交表单数据
  async submitForm() {
    if (!this.verifyName()) return
    if (!this.verifyMobile()) return
    if (!this.verifyIdCardUrl()) return
    // 将数据提交到服务器
    const { code } = await wx.http.post('/room', {
      point: this.data.point,
      building: this.data.building,
      room: this.data.room,
      name: this.data.name,
      gender: this.data.gender,
      mobile: this.data.mobile,
      idcardFrontUrl: this.data.idcardFrontUrl,
      idcardBackUrl: this.data.idcardBackUrl,
    })
    if (code !== 10000) return wx.utils.toast()
    // 提交新增成功
    wx.utils.toast('新增成功')
    // 跳转到列表页面
    wx.navigateBack({
      delta: 4,
    })
  },

})
